package com.loong.system.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class TenantShowListVO {
  /** 主键：租户ID */
  @TableId(value = "id")
  @Schema(description = "租户ID")
  private String id;

  /** 租户姓名 */
  @Size(max = 100, message = "编码长度不能超过100")
  @TableField(value = "name")
  @Schema(description = "租户姓名")
  @Length(max = 100, message = "编码长度不能超过100")
  private String name;

  /** 联系电话 */
  @Size(max = 20, message = "编码长度不能超过20")
  @TableField(value = "contact_number")
  @Schema(description = "联系电话")
  @Length(max = 20, message = "编码长度不能超过20")
  private String contactNumber;

  /** 电子邮箱 */
  @Size(max = 100, message = "编码长度不能超过100")
  @TableField(value = "email")
  @Schema(description = "电子邮箱")
  @Length(max = 100, message = "编码长度不能超过100")
  private String email;

  /** 地址 */
  @Size(max = 255, message = "编码长度不能超过255")
  @TableField(value = "address")
  @Schema(description = "地址")
  @Length(max = 255, message = "编码长度不能超过255")
  private String address;

  /** 公司名称 */
  @Size(max = 100, message = "编码长度不能超过100")
  @TableField(value = "company_name")
  @Schema(description = "公司名称")
  @Length(max = 100, message = "编码长度不能超过100")
  private String companyName;

  /** 创建时间 */
  @TableField(value = "gmt_create")
  @Schema(description = "创建时间")
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  private LocalDateTime gmtCreate;

  /** 修改时间 */
  @TableField(value = "gmt_modified")
  @Schema(description = "修改时间")
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  private LocalDateTime gmtModified;

  /** 门店介绍 */
  @Schema(description = "门店介绍")
  private String storeIntroduction;

  /** 门店图片 */
  @Schema(description = "门店主图")
  private String storeMainPic;

  /** 经度 */
  @Schema(description = "经度")
  private BigDecimal longitude;

  /** 纬度 */
  @Schema(description = "纬度")
  private BigDecimal latitude;

  /** 距离 */
  @Schema(description = "距离")
  private BigDecimal distance;
}
